The present invention pertains generally to the field of computer networking. More particularly, the present invention pertains to software applications used for configuring networking hardware installed on a computer system.
Computer networks can be arranged in numerous configurations and in a variety of network types. Some of the most popular types of networks are Ethernet (coaxial cable or twisted-pair cable), token ring, Fiber Distributed Data Interface (FDDI), Frame Relay, Integrated Services Digital Network (ISDN), X.25, and Synchronous Data Link Control (SDLC). Typically, these networks are arranged in local area networks (LANs) and wide area networks (WANs). Usually, LANs are distinguished from WANs based upon the geographical area they cover and sometimes the number of users connected to the network. For example, a group of personal computers (PC) in a home or single business site (location) usually communicate with each over a LAN. Groups of PCs that are at remote locations from one another, such as those in different homes, different companies, or different branch offices of the same company, typically communicate with each other over a WAN. Most WANs typically require significant resources to provide service to a large number of users spread over a vast geographical area causing a WAN to be relatively expensive to build and maintain.
Some users utilize the Internet for virtual private networking to avoid the costs of a true private WAN network and/or paying for long distance communication bills. In essence, virtual private networking entails encrypting and decrypting IP packets for transport across the Internet. In some virtual private networks (VPNs), the payload portion of an IP packet is encrypted for transport across the Internet. The header information is left intact so that routers can forward the packet as it traverses the Internet. In other VPNs, an entire IP packet is encrypted and then encapsulated into new IP packets for transport across the Internet.
One use of the VPN is that it allows a mobile computer system (e.g., a laptop) to be connected to a remote LAN. Typically, a user of the mobile computer system initiates a modem connection to an Internet Service Provider (ISP) and establishes an Internet session. Then, the mobile computer system sends an Internet message via the Internet to the remote LAN. The mobile system and the remote LAN then engage in a security protocol or handshaking to verify the user is an authorized user permitted to have access to the LAN. Once it is established the user is authorized to have access to the second LAN, a VPN is established, allowing the user and the remote computer system to access data stored within the LAN. VPN connections can also be established using a network interface card (NIC) instead of a modem. This is useful if the mobile computer system has a broadband connection, such as a digital subscriber line (DSL), cable modem, or hotel LAN.
Windows 95(copyright) and Windows 98(copyright) operating systems, however, do not provide native support for several types of VPNs. Therefore, a VPN software package is typically required to be installed in a system to provide for such specialized networking needs. xe2x80x9cVirtualxe2x80x9d NICs are often installed as part of a VPN software package. By way of background, xe2x80x9crealxe2x80x9d NICs are those associated with one or more pieces of hardware installed on the computer. They include PCI NIC cards, ISA NIC cards, PCMCIA NIC cards, USB NIC cards, etc. A xe2x80x9cvirtualxe2x80x9d NIC is one that is not associated with any hardware. Some examples of xe2x80x9cvirtualxe2x80x9d NICs include xe2x80x9cDial-Up Networking,xe2x80x9d xe2x80x9cInternet Connection Sharing,xe2x80x9d and xe2x80x9cVPN.xe2x80x9d Virtual NICs are well known in the art and are a common way of providing specialized networking support.
When a VPN client is installed under Windows 95(copyright) or Windows 98(copyright), it redirects a NIC""s TCP/IP bindings, sometimes using one or more software virtual NICs. This redirection is done in the Windows(trademark) System registry. Since the various VPN clients use slightly different methods for redirecting the TCP/IP bindings, it becomes difficult for a software application to reliably detect the TCP/IP binding for a particular NIC. To make matters worse, when a VPN is installed, the standard detection scheme for determining where the TCP/IP settings for each NIC are located in the registry no longer works.
Accordingly, what is needed is a software application that allows an administrator or end-user to more easily modify the network settings associated with the Network Interface Cards (NICs) installed on a computer, whether or not a VPN client is installed.
The present invention provides a method for detecting TCP/IP (Transmission Control Protocol/Internet Protocol) bindings for Network Interface Cards (NICs) installed on Windows 95(copyright) and Windows 98(copyright) operating systems with a VPN (Virtual Private Network) client present. More particularly, the present invention provides a method for parsing the Windows(trademark) system registry to detect TCP/IP bindings for network interface cards installed within a host computer system.
Specifically, in one embodiment, the present invention accomplishes the above described method by first opening the xe2x80x9cHKEY_DYN_DATA Config Manager Enumxe2x80x9d registry key. Then, for at least one key in the registry, the present invention performs a function.
The function performs several steps to detecting TCP/IP bindings of one network interface card. First, a second registry key represented by the location of a xe2x80x9cHardWareKeyxe2x80x9d string value of the xe2x80x9cHKEY_DYN_DATA Config Manager Enumxe2x80x9d registry key is identified. A third registry key represented by the location of a xe2x80x9cDriverxe2x80x9d string value for second registry key is then identified. Next, the ID value for the parent of the device represented by the xe2x80x9cHKEY_DYN_DATA Config Manager Enumxe2x80x9d registry key is identified. A fourth registry key represented by the ID value for the parent of the device is then determined. Next, a fifth registry key represented by the xe2x80x9cHardWareKeyxe2x80x9d string value for the fourth registry key is determined. Finally, if there is a xe2x80x9cHardwareIDxe2x80x9d string value for the fifth registry key, the registry key for the network interface card and its corresponding TCP/IP settings has been determined. The third registry key contains the TCP/IP settings for the network interface card and the fifth registry key is a registry key for the network interface card. The third registry key and the fifth registry key are then stored in a list.
Upon the completion of detecting the TCP/IP bindings of all of the network interface cards, a final list is produced containing a listing of all network interface card devices and the registry location where the TCP/IP settings for each respective network interface card is stored.